package com.hongyun.tms.common.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hongyun.tms.common.annotation.Translate;
import com.hongyun.tms.common.annotation.excel.ExcelInfo;
import com.hongyun.tms.common.constants.TranslateAnnotationConstant;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 拖轮能耗记录
 *
 * @author liPeng
 * @date 2024-05-31
 **/
@Data
@ExcelInfo(fileName = "能耗导出")
public class ProdConsumeVO implements Serializable {

    @ApiModelProperty(value = "主键")
    @ExcelIgnore
    private Long id;

    @Translate(tableName = TranslateAnnotationConstant.TMS_M_TUG)
    @ApiModelProperty(value = "拖轮ID")
    @NotNull(message = "拖轮ID不能为空")
    @ExcelIgnore
    private Long tugId;

    @ApiModelProperty(value = "记录开始时间")
    @ExcelProperty(value = "记录开始时间", index = 0)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date beginDte;
    @ApiModelProperty(value = "记录结束时间")
    @ExcelProperty(value = "记录结束时间", index = 1)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endDte;

    @ApiModelProperty(value = "拖轮No")
   @ExcelIgnore
    private String tugNo;
    @ApiModelProperty(value = "拖轮Name")
    @ExcelProperty(value = "拖轮", index = 2)
    private String tugName;

    @ApiModelProperty(value = "单耗")
    @ExcelProperty(value = "单耗", index = 3)
    private BigDecimal oneHourConsume;

    @ApiModelProperty(value = "油耗")
    @ExcelProperty(value = "油耗", index = 4)
    private BigDecimal oriCost;

    @ApiModelProperty(value = "用水量")
    @ExcelProperty(value = "用水量", index = 5)
    private BigDecimal waterCost;
    @ApiModelProperty(value = "用电量")
    @ExcelProperty(value = "用电量", index = 6)
    private BigDecimal powerCost;

    @ApiModelProperty(value = "左主机运行时长")
    @ExcelProperty(value = "左主机作业时长", index = 7)
    private BigDecimal leftMainWorkHours;

    @ApiModelProperty(value = "左主机开始数")
    @ExcelProperty(value = "左主机起小时数", index = 8)
    private BigDecimal leftMainBegNum;

    @ApiModelProperty(value = "左主机结束数")
    @ExcelProperty(value = "左主机止小时数", index = 9)
    private BigDecimal leftMainEndNum;
    @ApiModelProperty(value = "右主机运行时长")
    @ExcelProperty(value = "右主机作业时长", index = 10)
    private BigDecimal rightMainWorkHours;

    @ApiModelProperty(value = "右主机开始数")
    @ExcelProperty(value = "右主机起小时数", index = 11)
    private BigDecimal rightMainBegNum;
    @ApiModelProperty(value = "右主机结束数")
    @ExcelProperty(value = "右主机止小时数", index = 12)
    private BigDecimal rightMainEndNum;

    @ApiModelProperty(value = "1号副机运行时间")
    @ExcelProperty(value = "1号副机作业时长", index = 13)
    private BigDecimal oneAuxWorkHours;

    @ApiModelProperty(value = "1号副机开始数")
    @ExcelProperty(value = "1号副机起小时数", index = 14)
    private BigDecimal oneAuxBegNum;

    @ApiModelProperty(value = "1号副机结束数")
    @ExcelProperty(value = "1号副机止小时数", index = 15)
    private BigDecimal oneAuxEndNum;

    @ApiModelProperty(value = "2号副机运行时间")
    @ExcelProperty(value = "2号副机作业时长", index = 16)
    private BigDecimal twoAuxWorkHours;

    @ApiModelProperty(value = "2号副机开始数")
    @ExcelProperty(value = "2号副机起小时数", index = 17)
    private BigDecimal twoAuxBegNum;
    @ApiModelProperty(value = "2号副机结束数")
    @ExcelProperty(value = "2号副机止小时数", index = 18)
    private BigDecimal twoAuxEndNum;

    @ApiModelProperty(value = "开始存油数")
    @ExcelProperty(value = "初始存油量", index = 19)
    private BigDecimal oriBegVolume;

    @ApiModelProperty(value = "结束存油数")
    @ExcelProperty(value = "结束存油量", index = 20)
    private BigDecimal oriEndVolume;

    @ApiModelProperty(value = "前吃水")
    @ExcelProperty(value = "前吃水", index = 21)
    private BigDecimal beforeDraft;

    @ApiModelProperty(value = "后吃水")
    @ExcelProperty(value = "后吃水", index = 22)
    private BigDecimal ofterDraft;
    @ApiModelProperty(value = "上报月份")
    @DateTimeFormat(pattern = "yyyy-MM")
    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    private Date reportMon;


    @ApiModelProperty(value = "加油数")
    @ExcelIgnore
    private BigDecimal oriAddVolume;

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ExcelIgnore
    private Date createTime;
    @ApiModelProperty(value = "更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ExcelIgnore
    private Date updateTime;
    @ApiModelProperty(value = "备注")
    @ExcelIgnore
    private String remark;
}

